/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ar.edu.unicen.twitter.suggest.backend.datasources.twitterservices;

import ar.edu.unicen.twitter.suggest.backend.dtos.TweetApi;
import ar.edu.unicen.twitter.suggest.backend.dtos.UsuarioBasico;
import ar.edu.unicen.twitter.suggest.interfaces.exceptions.RejectedException;
import ar.edu.unicen.twitter.suggest.interfaces.exceptions.TwitterException;
import ar.edu.unicen.twitter.suggest.interfaces.exceptions.UserNotFoundException;
import ar.edu.unicen.twitter.suggest.interfaces.exceptions.UserProtectedException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import twitter4j.TwitterFactory;
import twitter4j.auth.RequestToken;

/**
 *
 * @author Alex
 */
public interface TwitterClient {
        
    UsuarioBasico getUserData(long id)  throws UserNotFoundException,UserProtectedException, RejectedException,TwitterException;

    UsuarioBasico getUserData(String screenName)  throws UserNotFoundException,UserProtectedException, RejectedException,TwitterException;
    
    List<TweetApi> getNewTweets(String screenName) throws UserNotFoundException,UserProtectedException, RejectedException,TwitterException;
    
    List<TweetApi> getAllTweets(String screenName,int page) throws UserNotFoundException,UserProtectedException, RejectedException,TwitterException;

    long[] getFollowers(String screenName,int maxCount) throws UserNotFoundException,UserProtectedException, RejectedException,TwitterException;

    long[] getFollows(String screenName,int maxCount) throws UserNotFoundException,UserProtectedException, RejectedException,TwitterException;

    public RequestToken getRequestToken() ;

    public void addTwitter(RequestToken requestToken, String pin);
}
